package com.gdust.gkyx.common.auth;

import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import javax.annotation.Resource;

/**
 * ClassName: LoginMvcConfigurerAdapter
 * Package: com.gdust.gkyx.common.auth
 * Description:Spring MVC 配置类，用于添加拦截器，实现对指定路径的请求进行拦截。
 *
 * @Author syun
 * @Create 2025/1/28 8:58
 * @Version 1.0
 */
@Configuration
public class LoginMvcConfigurerAdapter extends WebMvcConfigurationSupport {
    // 注入 RedisTemplate，用于在拦截器中处理 Redis 操作
    @Resource
    private RedisTemplate redisTemplate;

    /**
     * 重写 addInterceptors 方法，添加自定义拦截器。
     *
     * @param registry 拦截器注册器，用于注册拦截器及配置拦截路径
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new UserLoginInterceptor(redisTemplate))
                .addPathPatterns("/api/**")// 拦截所有 /api/ 下的请求
                .excludePathPatterns("/api/user/weixin/wxLogin/*");// 排除登录相关的路径
        // 调用父类的 addInterceptors 方法，确保配置继承父类行为
        super.addInterceptors(registry);
    }
}
